Personal computers (PCs) serve a multitude of software applications, features and functions. The applications provide the user with tools to accomplish tasks, such as, but not limited to, document processing, spreadsheet management, email exchanges and Internet browsing. The features and functions are commonly referred to as “personalized information” and may comprise favorite Internet websites, contacts, Internet cookies, digital signatures, background images, desktop icons, application control bars, choice of default values and other configurable settings. In general, the personalized information differs from one user to another.
Typically, software applications are installed and setup using an automated installation process. The installation process is designed to enable the integration of the new functionality into the operating system, as well as ensuring that the application can be safely removed. Still, as an installation process is mostly carried-out by automatic installation programs, installation and setup of software applications remain a tedious task requiring as much as hours of work.
Generally, an automatic installation program performs the following activities: a) copying application software files from a removable storage (e.g., a compact disk) to the destination computer; b) configuring the operating system's parameters by, for example, the configuration of the system registry files; c) creating the application icons; and d) deleting temporary installation files.
Typically modern operating systems, such as Microsoft® XP® or Microsoft Vista® includes a registry file for storing operating system user and application settings and options, dynamic link libraries (DLLs) which contains shared code, and named objects for naming functions shared by different processes. This structure of an operating system causes most of the challenges associated with application installation, most notable of which are:
1. Operating system Stability and Performance: Installations permanently modify the operating system (even after uninstalling) resulting in an incremental decline in operating system performance due to uninstalled leftovers (orphan files), inflated registry files, and so on.
2. Conflicts: Installations cause application conflicts due to various incompatibilities and resource sharing issues.
3. Rigidness: Applications are installed into the operating system in a way that prevents the applications from being “detached” and migrated between different computers; applications are executed exclusively within the environment in which they were initially installed.
4. Security: When applications and the operating system are fused together, internal cross contamination is almost inevitable.
These problems have resulted in information technology (IT) departments expending substantial wasted time, money and manpower on application lifecycle tasks, regression/compatibility tests, deployment and management, help desk and support issues, and more. Moreover, users cannot switch between computers and work with common applications without installing and registering those applications on each computer. Thus, the user or a system administrator has to configure the personalized information when switching between computers.
Typically, IT managers create and maintain a directory service to include information about the network resources across a domain. The directory service is a hierarchical schema of objects representing resources (e.g., computers, printers, etc.), services (e.g., email), and users (e.g., user accounts, security groups, etc,). The directory service allows performing actions on such objects, e.g., organizing the objects, controlling access and sets security permissions. Generally, such directory service is in the form of an Active Directory by Microsoft®, lightweight directory access protocol (LDAP) like directory services, Kerberos based authentication, domain name server (DNS) based naming, and the like. These directory based technologies will be referred hereinafter as the “management directory.”
It would be therefore advantageous to provide a solution for centrally deploying applications to any computers and/or user from a central server by utilizing already existing schema of objects maintained by the management directory. It would be further advantageous if the proposed solution would not modify the management directory's schema and would not require any installation of backend servers.